/*
 * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 */

package java.lang;

import java.io.IOException;

/**
 * <tt>Readable</tt> 是字符的源。来自 <tt>Readable</tt> 的字符
 * 通过 {@link java.nio.CharBuffer CharBuffer} 提供给 read 方法的调用者。
 *
 * @since 1.5
 */
public interface Readable {

    /**
     * 尝试将字符读入指定的字符缓冲区。缓冲区按原样用作字符的存储库：
     * 唯一的更改是 put 操作的结果。不执行缓冲区的翻转或倒带。
     *
     * @param cb 要读入字符的缓冲区
     * @return 添加到缓冲区的 {@code char} 值的数量，
     *         如果此字符源已到达末尾，则返回 -1
     * @throws IOException 如果发生 I/O 错误
     * @throws NullPointerException 如果 cb 为 null
     * @throws java.nio.ReadOnlyBufferException 如果 cb 是只读缓冲区
     */
    public int read(java.nio.CharBuffer cb) throws IOException;
}
